#ifndef __FONT_H_LULY_
#define __FONT_H_LULY_
#include "../PLATFORM.h"
#ifdef _ANDROID_PLATFORM__
#include "SDL_ttf.h"
#else
#include <SDL2/SDL_ttf.h>
#endif


#include <string>
#include <unordered_map>

#include "Font.h"

class _Font {
 private:
  _Font() {}
  std::unordered_map<std::string, TTF_Font*> font_list;

 public:
 public:
  static _Font& getInstance() {
    static _Font instance;
    return instance;
  }

  // file为字体文件（包括路径），如/font/a.ttf
  // pixelSize为字体的大小（以像素为单位）
  // fontId为自定义的一个名字，用来指代该字体（在getFont用到）
  //注意，加载的字体文件是以fontId为索引编排的，而不是以file
  void loadFont(std::string file, const unsigned int pixelSize,
                std::string fontId);

  // fontId为已加载的字体文件ID
  TTF_Font* getSDLFont(std::string fontId);
  bool hasSDLFont(std::string fontId);

  ~_Font();
};

#endif
